package com.handle.system.svc.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.handle.system.api.dto.SysUserDto;
import com.handle.system.api.entity.SysUser;
import com.handle.system.api.request.user.UserQueryParam;
import com.handle.system.api.response.UserInfoVo;
import com.handle.system.api.response.UserListVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 系统用户表 Mapper 接口
 * </p>
 *
 * @author zhangqing
 * @since 2021-03-05
 */
public interface SysUserMapper extends BaseMapper<SysUser> {

    /**
     * 根据用户名和租户ID获取用户信息
     * @param loginName 用户名
     * @param tenantCode 租户code
     * @return
     */
    @InterceptorIgnore(tenantLine = "true")
    SysUserDto loadByLoginNameAndTenantCode(@Param("loginName") String loginName,@Param("tenantCode") String tenantCode);

    /**
     * 获取用户信息
     * @param userId 用户ID
     * @return
     */
    UserInfoVo info(Long userId);

    /**
     * 获取所有用户
     *
     * @param userParam 用户参数
     * @return 用户集合
     */
    List<UserListVo> list(@Param("userParam") UserQueryParam userParam);

    /**
     * 批量删除用户信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int delUserByIds(@Param("ids")List<Long> ids);

    /**
     * 修改用户信息
     *
     * @param user 用户信息
     * @return 结果
     */
    @InterceptorIgnore(tenantLine = "true")
    int updateUser(@Param("user")SysUser user);
}
